package k5_net.demo01;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class TCPServer {

    public static void main(String[] args) {
        try {
            //本机作为服务端创建了一个8888端口的进程
            ServerSocket serverSocket = new ServerSocket(8888);
            System.out.println("服务器已经准备好");

            //由服务器分配的一个客服人员(socket)，等待客户端的连接
            //是一个阻塞方法，如果没有客户端连接，一直等待
            Socket socket = serverSocket.accept();
            System.out.println("客户端与服务端连接成功");

            //通过socket获取数据的输入流
            InputStream is = socket.getInputStream();
            //把InputStream流通过转换流，编程字符流
            InputStreamReader isr = new InputStreamReader(is);
            //再对字符流进行封装成缓冲流
            BufferedReader br = new BufferedReader(isr);

            System.out.println("服务端接收到的数据：");
            String line = "";
            //循环读取客户端的输入内容
            while((line=br.readLine())!=null){
                System.out.println("客户端说："+line);
                if (line.equals("拜拜")) {
                    break;
                }
            }

            System.out.println("客户端与服务端断开连接");

            br.close();
            socket.close();
            serverSocket.close();

        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}
